<?php

App::uses('Component', 'Controller');

class MenuComponent extends Component {
	
	/**
	 * Constructor
	 */
	public function __construct() {
	    $this->Menu = ClassRegistry::init('Menu');
	}
	
	
	/**
	 * Genera el código HTML para mostrar las opciones de menu
	 */
    public function generarItemsMenu($id_opcion_seleccionada=NULL) {
    	
        $out = "";
        
        //$id_opcion_seleccionada = (empty($id_opcion_seleccionada) ? 1 : $id_opcion_seleccionada);
    	
    	/*
    	 * Obtenemos los items de menu y pintamos el resultado en HTML
    	 */
    	// Opciones de menu primarias
    	$primary_menu_items = $this -> Menu -> find(
			'all', 
			array(
				'conditions'=>array('Menu.indActivo'=>1, 'Menu.menu_id'=>null), // TODO Añadir condicion para mostrar opciones por perfil
				'order'=>array('Menu.orden ASC')
			)
		);
		
		if(!empty($primary_menu_items)) {
			
			foreach ($primary_menu_items as $primary_menu_item) {
				
				// Opciones de menú secundarias
				$secundary_menu_items = $this -> Menu -> find(
					'all', 
					array(
						'conditions'=>array('Menu.indActivo'=>1, 'Menu.menu_id'=>$primary_menu_item['Menu']['id']), // TODO Añadir condicion para mostrar opciones por perfil
						'order'=>array('Menu.orden ASC')
					)
				);
				
				// Opcion de menu con subopciones
				if(!empty($secundary_menu_items)) {
					
					$class_active = ($primary_menu_item['Menu']['id'] == $id_opcion_seleccionada) ? 'class="active dropdown"' : 'class="dropdown"';
					
					$out .= '<li '.$class_active.' >';
					$out .= '<a href="'.$primary_menu_item['Menu']['url'].'" class="dropdown-toggle" data-toggle="dropdown">'.$primary_menu_item['Menu']['titulo'].' <b class="caret"></b> </a>';
					$out .= '<ul class="dropdown-menu">';
					
					$cont = 0;
					foreach ($secundary_menu_items as $secundary_menu_item) {
						
						if($cont == 1) {
							$out .= '<li class="divider"></li>';
						}
						
						$out .= '<li><a href="'.$secundary_menu_item['Menu']['url'].'">'.$secundary_menu_item['Menu']['titulo'].'</a></li>';
						
						$cont++;
					}
					$out .= '</ul>';
					$out .= '<li class="divider-vertical"></li>';
				}
				// Opción de menú sin subopciones
				else {
					$class_active = ($primary_menu_item['Menu']['id'] == $id_opcion_seleccionada) ? 'class="active"' : "";
					$out .= '<li '.$class_active.'><a href="'.$primary_menu_item['Menu']['url'].'">'.$primary_menu_item['Menu']['titulo'].'</a></li>';
					$out .= '<li class="divider-vertical"></li>';
				}
			}
		}
		
    	return $out;
    }
}

?>